package br.com.beautycenter.DAO;

import br.com.beautycenter.bean.Cliente;
import br.com.beautycenter.bean.Venda;
import br.com.beautycenter.hibernateUtil.DaoBase;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Query;

public class PersisteVenda extends DaoBase<Venda>{
    
    public void salvar(Venda venda){
        save(venda);
    }
    
    public Venda retornarFeriadoPeloID(Venda venda) {
        return getEntityManager().find(Venda.class, venda.getIdVenda());
    }
    
    public List<Venda> retornarVendasPorCliente(Cliente cliente){
        Query query = getEntityManager().createQuery("FROM Venda v WHERE v.cliente.idPessoa=:id");
        query.setParameter("id", cliente.getIdPessoa());
        
        try{
            return query.getResultList();
        }catch (Exception ex){
            return new ArrayList<Venda>();
        }
    }
    
    /**
     * Executa a seguinte query: SELECT SUM(VALOR_SUPRIMENTO) FROM SUPRIMENTO WHERE DATA_CADASTRO = DATA.
     * 
     * Retorna o somatório do valores de um determinado dia
     * @param data
     * @return 
     */
    public Double retornarSomatorioVendaPorData(Date data){
        Query query = getEntityManager().createQuery("SELECT SUM(v.valorTotaLiquido) FROM Venda v WHERE "
                + "v.dtVenda=:data");
        
        query.setParameter("data", data);
        
        try{
            return (Double)query.getSingleResult();
        }catch(Exception ex){
            ex.printStackTrace(); //exibe o erro que deu
            return 0.;
        }
    }
    
}